package gameStates.absGamesStates.network;

import interfaces.menu.joinGame.gamesTable.GamesTableWidget;

import logic.common.player.Player;
import logic.ships.Ship;
import logic.status.StatusListener;
import logic.weapons.Weapon;
import logic.weapons.projectileWeapons.heatSeeker.HeatSeeker;

public interface AbsClientState extends AbsNetworkState {
	
	public Weapon getWeapon(int weaponID);
	
	public void registerTransmittedShip(Ship ship);
	
	public void disconnectClient();
		
	public void initClient(String ip) throws Exception;
	
	public GamesTableWidget getLastGamesTableWidget();
	
	public StatusListener getPlayerStatusListener(final int objectID);
	
	public void playerWantsTeamChange(Player player);
	
	public void handeCollisionDamage(int hunterID, int damage);
	
	public void handleCMUse(Player player);
	
	public HeatSeeker getFiredHeatSeeker(int clientWeaponFireID);
}